package com.blue.base.demo.vo;

import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * 用户传输Bean
 *
 * @author liulei
 * @version 2.0
 */
@ApiModel("用户返回前端实体类")
@Data
@Accessors(chain = true)
public class UserVo {
    /**
     * 用户ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty("用户ID")
    private Long userId;
    /**
     * 账户
     */
    @ApiModelProperty("账户")
    private String account;

    /**
     * 密码
     */
    @ApiModelProperty("用户名称")
    private String name;
    /**
     * 用户职位ID
     */
    @ApiModelProperty("职位ID列表")
    private List<Long> position;

    /**
     * 职位名称
     */
    @ApiModelProperty("职位名称列表")
    private List<String> positionName;

    /**
     * 部门ID
     */
    @ApiModelProperty("部门ID列表")
    private List<Long> deptIds;
    /**
     * 部门名称
     */
    @ApiModelProperty("部门名称列表")
    private List<String> deptNames;

    /**
     * 出生日期
     */
    @ApiModelProperty("出生日期")
    private Date birthday;
    /**
     * 性别
     */
    @ApiModelProperty("性别")
    private String sex;
    /**
     * 邮箱地址
     */
    @ApiModelProperty("邮件")
    private String email;
    /**
     * 联系电话
     */
    @ApiModelProperty("联系电话")
    private String phone;
    /**
     * 账户状态【对应字典表数据】
     */
    @ApiModelProperty("账号状态")
    private String status;
    /**
     * 用户头像地址
     */
    @ApiModelProperty("头像地址")
    private String avatar;

    /**
     * 微信openid
     */
    @ApiModelProperty("微信openid")
    private String openid;

    /**
     * 微信unionid
     */
    @ApiModelProperty("微信unionid")
    private String unionid;

    /**
     * 用户类型：1-系统用户 2-微信用户
     */
    @ApiModelProperty("用户类型：1-系统用户 2-微信用户")
    private Integer userType;

    /**
     * 用户创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}
